<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>demo12-slot02-插槽prop</title>
</head>
<script src="../libs/vue.js"></script>
<style>
    .container{
        width: 100%;
        min-width: 320px;
        max-width: 640px;

        margin:0 auto;
    }
</style>
<body>
    <div id="app"> 

      <div>
        <button v-on:click="changeSlotName">切换</button>
      </div>
        <base-layout>
          <!-- 
            这一节学习动态参数名 ，还是尤其要注意大写的问题！！！
            大写在dom中不识别！！！
          
          -->
          <template v-slot:[dynamicname]>
            <h1>来自root的占位 , 这是：{{dynamicname}}</h1>
          </template> 

        </base-layout>
    </div>
</body>

<script>

Vue.component('base-layout',{
    template:`<div class="container">
  <header>
    <!-- 我们希望把页头放这里 -->
    <slot name="header">默认子组件header !</slot>

  </header>
  <main>
    <!-- 我们希望把主要内容放这里  --> 
    <slot>默认子组件 main @@@ </slot>
  </main>
  <footer>
    <!-- 我们希望把页脚放这里 -->
    <slot name="footer">默认子组件 footer ### </slot>
  </footer>
</div>`
});

var app = new Vue({
  el: '#app',
  data:{
    dynamicname:'',
    slotNameListPos: 0,
    slotNameList:['header','default','footer']
  },
  methods:{
    changeSlotName:function(){
      if(this.slotNameListPos>2){
        this.slotNameListPos = 0;
      }
      this.dynamicname = this.slotNameList[this.slotNameListPos++];
    }
  }
});
</script>
</html>